Neovimでカーソルの移動を可視化できるプラグインSmoothCursor.nvimを使ってみた
どうも。CX事業本部Delivery部のえーたん(@eetann092)です。
愛用中のSmoothCursor.nvimの紹介です。カーソル移動時、signcolumnに副カーソルが表示され、移動方向や地点が視覚化されます。
以下は、デフォルトの設定で動かした例です。
3行よりも多く移動したら副カーソルが描画されます。この閾値はthreshold
オプションで変更できます。
一部オプションの紹介
Fancy modeを有効にすると、副カーソルに割り当てる文字や色を変えることができます。
たとえばREADMEに載っている通り、ゲーミングカラーにできます。
筆者の設定は以下です。シンタックスハイライト付きで見たい方はdotfilesをどうぞ。 副カーソルの色を全部オレンジにしています。
require("smoothcursor").setup({ priority = 10, fancy = { enable = true, head = { cursor = "", texthl = "SmoothCursor", linehl = nil }, body = { { cursor = "", texthl = "SmoothCursorOrange" }, { cursor = "", texthl = "SmoothCursorOrange" }, { cursor = "●", texthl = "SmoothCursorOrange" }, { cursor = "●", texthl = "SmoothCursorOrange" }, { cursor = "•", texthl = "SmoothCursorOrange" }, { cursor = ".", texthl = "SmoothCursorOrange" }, { cursor = ".", texthl = "SmoothCursorOrange" }, }, tail = { cursor = nil, texthl = "SmoothCursor" }, }, disabled_filetypes = { "TelescopePrompt", "TelescopeResults", "gitblame", "css", "noice", "lazy", }, })
カーソル行のハイライトをauto-cursorline.nvimで行っているため、head
のcursor
は空文字を指定しています。
disabled_filetypes
で無効にしたいファイルタイプを指定しています。
他のプラグインとの組み合わせに気を付けよう
signcolumnを使っている他のプラグインを入れている場合、priority
オプションの変更時に注意が必要です。
たとえば、gitsigns.nvimを優先させてしまうと、以下のように副カーソルの描画が途切れてしまいます。
同じようにsigncolumnを使うプラグインで優先度を変えたい場合、そのプラグインのヘルプやコードで文字列priority
を検索すると、それらしい設定が出てくるかもしれません。SmoothCursor.nvimはpriority
オプション、gitsigns.nvimはsign_priority
オプションで優先度を設定できます。
リンク集
作者のgen740さんによる記事もあります。
SmoothCursor.nvimのリポジトリのリンクは以下です。